Hoppa till huvudinnehåll

Virtual Power Plant

tips

The VPP Protocol is based on the Live MQTT Protocol. Please refer to this page before this. See Live MQTT Control.

tips

The initial VPP setup MUST be done by Eniris. Please contact Eniris before following the next steps.

Connecting to the MQTT Broker

Please refer to the following section to find out how to connect to the Eniris MQTT Broker: MQTT Broker Connection

VPP Functionality

The VPP is designed to receive one setpoint/strategy per device group (e.g. Solar, Storage), and aggregate the setpoint between the controllers connected to the VPP.

Whereas the Live MQTT Protocol would send a command to a single controller, the VPP allows the user to send one command to a group of controllers.

Adding Controllers to the VPP

When adding the Eniris MQTT Signal, a VPP ID field is shown. Enter the VPP ID received here.

Aggregation Algorithm

The setpoint are aggregated based on the capacity of the devices falling under the individual controllers.

MQTT Topics

Once the initial setup is complete, a VPP ID and MQTT Username (and password) will be provided.

Incoming Topic

Topic: vpp/{MQTT Username}/{VPP ID}

This topic is used by the user to send an aggregated command to the VPP.

Body:

{
"msg_id": <Incremental message id>(int),
"vpp_id": <VPP ID>(str)
"time": "<Unix Timestamp>(int)",
"fields": {
"<Component Policy>": "<Policy Type>",
"<Component Power Setpoint>": <Setpoint in watts>
}
}

The component policies and setpoints can be found here: MQTT Components and Policies

Acknowledgement Topic

Topic: vpp/{MQTT Username}/{VPP ID}/acknowledgement

After a command has been sent, the VPP will respond with an acknowledgement, indicating whether the command was successfully received or not.

Body:

{
"payload": {
"fields": {
"responseCode": <Success/Failure Code>(int),
"ack": <Acknowledgement Message>(str)
},
"target": <VPP ID>(str)
},
"message_type": <Type of Message>(str)
}

Feedback Topic

Topic: vpp/{MQTT Username}/{VPP ID}/feedback

The Feedback Topic contains the feedback returned by the individual controllers.

Body:

{
"payload": {
"updated_on": <Unix Timestamp of the data>(str)
"feedback_dict": {
<Feedback Dict>(dict)
},
"target": <Site Node ID>(str)
},
"message_type": <Type of Message>(str)
}

The feedback dict structure can be found here: MQTT Feedback Payload Structure

Aggregated Feedback Topic

Topic: vpp/{MQTT Username}/{VPP ID}/aggregated_feedback

The VPP aggregates the feedback received by each individual controller.

Body:

{
"payload": {
"updated_on": <Unix Timestamp of the data>(str)
"feedback_dict": {
<Aggregated Feedback Dict>(dict)
},
},
"message_type": <Type of Message>(str)
}

The aggregated feedback dictionary is structured similarly to the MQTT Feedback Payload Structure. However, string values, such as executed strategies, cannot be aggregated, and are therefore not included.

Dispatched Commands Topic

Topic: vpp/{MQTT Username}/{VPP ID}/dispatched_commands

When commands are sent to the controllers by the VPP, this is reported using this topic.

Body:

{
"payload": {
"aggregated": {
<Component Name>(str): <CommandPower Value>(float)...
},
"dispatched_commands": [
<List of individual commands sent to the controllers>
],
},
"message_type": <Type of Message>(str)
}

The payload structure of the individual commands sent can be found here: MQTT Feedback Payload Structure.

Warning Topic

Topic: vpp/{MQTT Username}/{VPP ID}/warning

If an error or warning occurs in the VPP, a message will be sent over this MQTT topic.

Body:

{
"payload": {
"fields": {
<Field Dictionary>(dict)
},
"target": <VPP ID>(str)
},
"message_type": <Type of Message>(str)
}